• databasedeki tabloda bir satiri identify edebilecek bir alan, dolayisiyla unique olmalidir.
    (bkz: foreign key)
  • hakkinda soyle bir uyarisi yapilasi gereken key : her primary key unique iken, her unique key primary key degildir**.
  • genellikle (bkz: auto increment) bir (bkz: sayı) primary key olarak seçilir.
    bu sayede her eklenen satırı diğerlerinden ayıracak bir alan elde edilir.
  • (bkz: super key)
  • vergi kimlik no, ehliyet no, pasaport no, banknot seri no, kredi karti no, arac plaka no hep primary key dirler. anketi bile yapilabilir bunun.

    hatta nufus cuzdaninin arkasindaki il, ilce, koy, aile sira no, kutuk no ve sira beraberce bir primary key olusturur fakat yine de nufus cuzdani no primary key olarak kullanilir pratik olarak.
  • (bkz: candidate key)
  • *istisna durumlar olmakla birlikte*

    tüm tablolarda bulunur, tek bir alandan oluşur. bu alanın türü int ya da long'a karşılık gelen bir şey seçilir. alana isim olarak id ya da tabloadı_id*verilir. otomatik artması çeşitli yöntemlerle sağlanır; veritabanında otomatik arttırmak için, bazı vt sistemleri* alan tipi olarak "otomatik artan"* seçmenize izin verirken, bazıları da** sequence* - trigger çiftiyle dolaylı yoldan halletmenizi ister. bu 2. yöntemde önce sequence tanımlanır. sequence, bir değer tutar ve istediğinizde kendi değerini bir arttırıp size yeni değer oluşturur. trigger da bir tabloya kayıt eklenmeden, silinmeden, düzeltilmeden önce ya da sonra sql çalıştırmanızı sağlar. tabloya kayıt eklenmeden çalışacak bir trigger tanımlayıp, içine de önceden tanımladığınız sequence'la sayı üretip bu tablonun id'si olarak belirleyecek bir sql yazarsanız, dolaylı yoldan otomatik artan alan tanımlamış olursunuz.

    uygulama tarafında daha farklı seçenekler olabilir. örneğin java ve jpa kullanıyorsanız, jpa bu iki yöntemi desteklemekle birlikte bir alternatif daha sunar. veritabanında bir tablo oluşturuyorsunuz, bir alanı tablo adı, diğer alanı da id olan. jpa da burada her tablo için atadığı son değeri tutuyor (bkz: generatedvalue). jpa kullanılırken bu yöntem daha çok tercih ediliyor çünkü veritabanının hangi yöntemi desteklediğinin önemi kalmıyor, veritabanından bağımsızlık sağlıyor.

    *istisna durumlardan bazıları*
    many-to-many* ilişki kurmak için yaratılan tablolarda pk olmaz ya da birden fazla alandan oluşur doğal olarak. ayrıca işlem log'larının tutulduğu tablolarda da pk tanımlanmaz. zira pk aramayı hızlandırıp kayıt eklemeyi yavaşlatır. log tablolarına çok fazla kayıt eklenip ayda yılda bir okunduğu için pk tanımlanması performansı gereksiz yere düşürür.
  • primary key bir tablodaki verilerin eşsiz kimliğidir. primary key olarak seçtiğiniz sütun unique olmak zorundadır. shift tuşu ile birden fazla alan seçip sağ tıklayarak seçili tüm alanları primary key yapabiliriz. illa ki int ya da long olmak zorunda da değildir. uniqueidentifier da olabilir. değerini otomatik arttırmak yerine base class'ınızdan kendi oluşturduğunuz değerleri de atabilirsiniz(size kalmış) .
hesabın var mı? giriş yap